#ifndef GLR_H
#define GLR_H

#include "folder.h"
#include <QFile>
#include <QDir>
#include <QMessageBox>
#include <QTableWidget>
#include <QPlainTextEdit>
#include "ui_mainwindow.h"

class GLR : public QTreeWidgetItem
{
    Ui::MainWindow *ui;

public:
    GLR(QString pPath, Ui::MainWindow *p_ui, QString *version);

    bool loadInfo();

    // Инкапсуляция
    QString getType()                   { return type; }
    QString getTempPath()               { return projectPath; }
    QString getProjectName()            { return projectName; }
    QString getPathToSave()             { return pathToSave; }

    int getTotalFiles()      { return totalFiles; }
    int getTranslated()      { return translated; }
    int getMaxDifference()   { return maxDiff; }

    bool hasIcon()           { return b_hasIcon; }
    bool hasSavePath()       { if( pathToSave.isEmpty() ) return false; return true; }

    Folder* getTree()  { return tree; }

    void setPathToSave( QString path ) { pathToSave = path; }

    bool changed() { return isChanged; }

protected:
    QString type;

    QString *version; // Версия программы
    QString pathToSave; // Путь для сохранения GLR
    // Статистика
    int totalFiles; // Всего файлов в озвучке
    int translated; // Сколько переведено

    // Содержимое
    Folder*  tree;  // Все дерево папок в одном объекте

    // Информация о игре
    bool     b_hasIcon;   // Есть ли иконка. Иконка имеет всегда имеет одно имя и одно место хранения. Если true, то она загружается

    // Конфигурация glr
    QString  projectName;   // Название проекта
    int      maxDiff;       // Максимальное несовпадение длины оригинала варианту озвучки в секундах
    QString  projectPath;   // Путь к проекту

    // Состояния
    bool isChanged;

public slots:
    void glrIsChanged();
    void glrIsSaved();
};

#endif // GLR_H
